The present invention relates to a communication apparatus connected to another apparatus through a network and, more particularly, to a communication apparatus and data communication method to execute communication by distributing data to a plurality of connections.
A communication method is conventionally available in which the data of one communication flow used in communication between a transmission terminal and a reception terminal is segmented into a plurality of flows and reassembled at last. For example, a communication method has been proposed in which a gateway is installed in each of a first LAN (Local Area Network) to which a transmission terminal belongs and a second LAN to which a reception terminal belongs. TCP (Transmission Control Protocol) connection data sent from the transmission terminal is distributed at the gateway of the first LAN to communication paths in packets. At the gateway of the second LAN, the order reversal of the packets received from the plurality of communication paths is corrected in accordance with the sequence number of TCP, thereby reassembling the data (e.g., reference 1 (Japanese Patent Laid-Open No. 2000-261478)). However, since this communication method presumes that the TCP of the terminal is used in one communication path, the performance of the communication paths cannot sufficiently be exhibited.
To efficiently use a plurality of communication lines to increase the line utilization factor, the following three methods can be used. As the first method, a function is added to the TCP of a terminal to change communication conventionally using one TCP connection to communication using a plurality of TCP connections (e.g., reference 2 (Japanese Patent Laid-Open No. 2003-110604)). In the first method, data communication executed between a transmission terminal and a reception terminal by one communication flow is segmented into a plurality of communication flows to send the data parallelly. When the transmission terminal is to transmit data to the reception terminal, the communication protocol of the transmission terminal segments the communication data of one communication flow into a plurality of communication flows. The transmission terminal adds, to the packet data of a TCP/IP packet, a new header serving as reassembly information to reassemble the plurality of segmented communication flows into the original data and transmits the data in the respective communication flows. The communication protocol of the reception terminal reassembles one communication flow by referring to the reassembly information of the data received from the plurality of communication flows, thereby reassembling the original data.
As the second method, in communication using a plurality of paths, the quality information of each path is transmitted from the reception terminal to the transmission terminal, and the transmission terminal determines, on the basis of the quality information, the quantity of data to be transmitted to each path (e.g., reference 3 (Japanese Patent Laid-Open No. 2004-7361)).
As the third method, in communication using a plurality of paths, the transmission terminal measures the throughput available in each path in transmitting several data at the start of transfer and determines, on the basis of the measurement result, the size of data to be distributed to each path (e.g., reference 4 (Japanese Patent Laid-Open No. 2003-152776)).
As the first conventional problem, in the first method disclosed in reference 2 and the third method disclosed in reference 4, when data distributed to a plurality of paths on the transmitting side is reassembled on the receiving side, a long time is required to arrange the data received from the plurality of paths in order. As a result, the transmission rate obtained by the reception terminal becomes low.
As the second conventional problem, in the first method disclosed in reference 2 and the third method disclosed in reference 4, when data distributed to a plurality of paths on the transmitting side is reassembled on the receiving side, a buffer necessary for arranging the data received from the plurality of paths in order becomes large, resulting in an increase in cost.
As the third conventional problem, in the first method disclosed in reference 2, the second method disclosed in reference 3, and the third method disclosed in reference 4, since the transmission queue in the transmission terminal is not taken into consideration, the calculation error of the arrival time becomes large.
As the fourth conventional problem, in the second method disclosed in reference 3, the effective throughput of the communication protocol is not taken into consideration. For example, the effective throughput of TCP as the most widely used protocol is determined on the basis of the packet loss rate, a delay in path, and the advertised window size and congestion window size of TCP. In TCP, since packets are retransmitted, the throughput of packet level does not match the effective throughput of TCP. Additionally, in TCP, the transmission rate is adjusted in accordance with the packet loss or advertised window size. Since the transmission rate changes every moment, the calculation error of the arrival time becomes large if the arrival time is simply fed back from the reception terminal.
As the fifth conventional problem, in the third method disclosed in reference 4, when the usable band of each path changes or when the communication rate of the TCP connection of each path changes, the whole communication cannot finish until communication in a slow path is completed, and the communication performance decreases. Especially in TCP, the communication throughput is gradually raised at the start of transfer. Then, the communication throughput is adjusted in accordance with the congestion condition (traffic condition). For this reason, when data is distributed to the paths on the basis of the measurement result at the start of communication, the data is not appropriately distributed to the paths. As a result, the time until the end of communication becomes long, and the communication performance decreases.